<?php

App::uses('AppController', 'Controller');

class ParalelosProfesoresController extends AppController
{
    public $uses = array(
        'ParalelosProfesore',
        'Paralelo',
        'Profesore',
        'Materia', 
        'Periodo', 
        'Horario');
    public $layout = 'colegio';    
    
    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow('*');
    }

    public function index()
    {
        $paralelosProfesores = $this->ParalelosProfesore->find('all', array('recursive' =>
                0));
        $this->set(compact('paralelosProfesores'));
    }

    public function listaprofesores($idParalelo = null)
    {
        
        $gestion = date("Y");
        $dcm = $this->Materia->find('all', array(
            'recursive'=>-1,
            'fields'=>array('id', 'nombre')            
        ));
        
        $dcp = $this->Profesore->find('all', array(
            'recursive'=>-1,
            'fields'=>array('id', 'nombre', 'ap_paterno', 'ap_materno')            
        ));         
                      
        $paralelosProfesores = $this->ParalelosProfesore->find('all', array(
            'recursive' => 1, 
            'conditions' => array('ParalelosProfesore.paralelo_id' => $idParalelo)));
                        
        //debug($paralelosProfesores);
        //$idParalelo = $paralelosProfesores['Paralelo']['id'];
        if(!empty($this->request->data))
        {
            //debug($this->request->data);
            $this->request->data['ParalelosProfesore']['gestion']=$gestion;
            if($this->ParalelosProfesore->save($this->request->data))
            {
                $this->Session->setFlash('Registro Guardado!!!', 'msgbueno');
                $this->redirect(array('action' => 'listaprofesores', $idParalelo)); 
            }
        }
            
        $this->set(compact('paralelosProfesores', 'dcm', 'dcp', 'idParalelo'));
    }
    function insertar()
    {
        if (!empty($this->data))
        {
            if ($this->ParalelosProfesore->save($this->data))
            {
                $this->Session->setFlash('Se Guardo Correctamente!!!');
                $this->redirect(array('action' => 'index'));
            }
            else
            {
                $this->Session->setFlash('Error al Guardar consulte con el Administrador de Sistema');
            }
        }
        $dparalelo = $this->Paralelo->find('list', array('fields' => 'Paralelo.nombre'));
        $this->set(compact('dparalelo'));

        $dprofe = $this->Profesore->find('list', array('fields' => 'Profesore.nombre'));
        $this->set(compact('dprofe'));

        $dmateria = $this->Materia->find('list', array('fields' => 'Materia.nombre'));
        $this->set(compact('dmateria'));

    }

    function editar($id = null)
    {
        $this->ParalelosProfesore->id = $id;
        if (!$id)
        {
            $this->Session->setFlash('No Existe el tipo de Paralelo Profesor');
            $this->redirect(array('action' => 'index'));
        }
        if (empty($this->data))
        {
            $this->data = $this->ParalelosProfesore->read();
        }
        else
        {
            if ($this->ParalelosProfesore->save($this->data))
            {
                $this->Session->setFlash('Se Guardo Correctamente el Paralelo Profesor');
                $this->redirect(array('action' => 'index'));
            }
            else
            {
                $this->Session->setFlash('Error al guardar el Paralelo Profesor');
            }
        }
        $dparalelo = $this->Paralelo->find('list', array('fields' => 'Paralelo.nombre'));
        $this->set(compact('dparalelo'));

        $dprofe = $this->Profesore->find('list', array('fields' => 'Profesore.nombre'));
        $this->set(compact('dprofe'));

        $dmateria = $this->Materia->find('list', array('fields' => 'Materia.nombre'));
        $this->set(compact('dmateria'));
    }

    function eliminar($id = null)
    {
        $this->ParalelosProfesore->id = $id;
        $this->data = $this->ParalelosProfesore->read();
        if (!$id)
        {
            $this->Session->setFlash('No existe el Paralelo Profesor a Eliminar');
            $this->redirect(array('action' => 'index'));
        }
        else
        {
            if ($this->ParalelosProfesore->delete($id))
            {
                $this->Session->setFlash('Se elimino el Paralelo Profesor ' . $this->data['ParalelosProfesore']['nombre']);
                $this->redirect(array('action' => 'index'));
            }
            else
            {
                $this->Session->setFlash('Error al eliminar');
            }
        }
    }

    public function paralelosprofesor($idProfesor = null)
    {

    }

    public function listaparalelos($idParalelo = null)
    {

        $profesores = $this->ParalelosProfesore->find('all', array('recursive' => 0,
                'conditions' => array('ParalelosProfesore.paralelo_id' => $idParalelo)));
        //debug($paralelos);exit;
        $this->set(compact('profesores'));
    }


    public function insertarprofesor($idParalelo = null)
    {        
        $this->layout = 'ajax';
        $gestion = date("Y");
        $dcm = $this->Materia->find('all', array(
            'recursive'=>-1,
            'fields'=>array('id', 'nombre')            
        ));
        
        $dcp = $this->Profesore->find('all', array(
            'recursive'=>-1,
            'fields'=>array('id', 'nombre', 'ap_paterno', 'ap_materno')            
        ));         
                      
        $paralelosProfesores = $this->ParalelosProfesore->find('all', array(
            'recursive' => 1, 
            'conditions' => array('ParalelosProfesore.paralelo_id' => $idParalelo)));
                        
        //debug($paralelosProfesores);
        //$idParalelo = $paralelosProfesores['Paralelo']['id'];
        if(!empty($this->request->data))
        {
            //debug($this->request->data);
            $this->request->data['ParalelosProfesore']['gestion']=$gestion;
            if($this->ParalelosProfesore->save($this->request->data))
            {
                $this->Session->setFlash('Registro Guardado!!!', 'msgbueno');
                $this->redirect(array('action' => 'listaprofesores', $idParalelo)); 
            }
        }
            
        $this->set(compact('paralelosProfesores', 'dcm', 'dcp', 'idParalelo'));
    }
    public function asignarhorario($idMateria=null, $idParalelo=null, $idProfesor=null, $profesor, $materia){
        $this->layout = 'ajax';
        $dias = array(
        '1'=>"Lunes", 
        '2'=>"Martes", 
        '3'=>"Miercoles", 
        '4'=>"Jueves", 
        '5'=>"Viernes", 
        '6'=>"Sabado");
        $periodos= $this->Periodo->find('all', array('fields'=>array('Periodo.id', 'Periodo.periodo', 'Periodo.descripcion', 'Turno.nombre'), 'order'=>array('Periodo.periodo Asc')));
        
        if(!empty($this->request->data)){
           
            $gestion = date('Y');
            $horario = $this->Horario->find(
            'all', array(
            'conditions'=>array(
                    'Horario.dia'=>$this->request->data['Horario']['dia'],
                    'Horario.periodo_id'=>$this->request->data['Horario']['periodo_id'],
                     'Horario.paralelo_id'=>$idParalelo,
                    'Horario.gestion'=>$gestion
                )
            )
            );
            
            if(!empty($horario)){
                $this->Session->setFlash(__('Ese periodo en ese dia ya fue asignado!!! fijese en los horarios de este paralelo'), 'msgalert');
                $this->redirect(array('controller'=>'Horarios', 'action' => 'listaprofesores', $idParalelo));
            }
            
            $this->Horario->create();
            
            $this->request->data['Horario']['gestion'] = $gestion;
            if($this->Horario->save($this->request->data)){
                $this->Session->setFlash('Se asigno el periodo correctamente', 'msgbueno');
                $this->redirect(array('controller'=>'Horarios', 'action' => 'listaprofesores', $idParalelo));
            }
            else
            {
                $this->Session->setFlash('Error al registrar','msgalert');
                $this->redirect(array('controller'=>'Horarios', 'action' => 'listaprofesores', $idParalelo));
            }
        }
        $this->set(compact('dias', 'periodos', 'turnos', 'idMateria', 'idParalelo','idProfesor', 'profesor', 'materia'));
    }
    public function eliminarprofesor($id=null, $idParalelo=null){
        //debug($id);
        //debug($idParalelo);exit;
        $this->ParalelosProfesore->id = $id;
        $this->request->data = $this->ParalelosProfesore->read();
        if (!$id)
        {
            $this->Session->setFlash('No existe el registro a Eliminar');
            $this->redirect(array('action' => 'listaprofesores', $idParalelo));
        } else
        {
            if ($this->ParalelosProfesore->delete($id))
            {
                $this->Session->setFlash('Se elimino al Profesor ' .$this->request->data['Profesore']['ap_paterno'].$this->request->data['Profesore']['nombre']);
                $this->redirect(array('action' => 'listaprofesores', $idParalelo));
            } else
            {
                $this->Session->setFlash('Error al eliminar');
                $this->redirect(array('action' => 'listaprofesores', $idParalelo));
            }
        }
    }
}
